// const sequelize = require('@/db/seq')
const { DataTypes, Sequelize } = require('sequelize') // 引入 sequelize
const sequelize = require("@/db/seq");

// 定义文章模型
const ArticleTag = sequelize.define('blog_article_tag', {
  article_id: {
    type: DataTypes.INTEGER, // INT(11)
    allowNull: false,
    primaryKey: true, // 主键
    comment: '文章id',
    references: {
      model: 'blog_article', // 关联的模型名称
      key: 'id', // 关联的模型的主键
    },
    onUpdate: 'CASCADE',
    onDelete: 'CASCADE',
    comment: '文章id',

  },
  tag_id: {
    type: DataTypes.INTEGER, // INT(11)
    allowNull: false,
    primaryKey: true, // 主键
    comment: '标签id',
    references: {
      model: 'blog_tag', // 关联的模型名称
      key: 'id', // 关联的模型的主键
    },
    onUpdate: 'CASCADE',
    onDelete: 'CASCADE',
    comment: '标签id',
  },
  createdAt: {
    type: DataTypes.DATE, // DATETIME
    defaultValue: Sequelize.NOW, // 默认值为当前时间
    get() { // 自定义 getter 方法
      // 获取当前实例的 createdAt 字段值
      const createdAt = this.getDataValue('createdAt');
      return moment(createdAt).format('YYYY-MM-DD HH:mm:ss'); // 格式化时间
    },
    comment: '创建时间',
  },
},
  {
    freezeTableName: true, // 禁用表名复数
  }
)

// 同步数据库
// ArticleTag.sync({ force: false, alter: true })
ArticleTag.name = 'ArticleTag'
module.exports = ArticleTag